#include "xsUtils.hpp"

#include <ctime>

namespace xs
{

Logger LOG;

//=================================================================================================
// Logger::operator()
//=========

std::ostream& Logger::operator() (u32 level)
{
	char timesign [128];	//tymczasowy bufor

	_strdate(timesign);	//zaladuj bierzaca date

	if(level == LL_INF)
		m_file << "[Info ";
	else if(level == LL_ERR)
		m_file << "[Error ";
	else
		m_file << "[Warning ";

	_strtime(timesign);	//zaladuj bierzacy czas

	m_file << timesign <<"] ";	//wypisz druga polowe komunikatu - aktualny czas

	return m_file;
}

//=================================================================================================
// Logger::Logger
//=========

Logger::Logger(): m_file("log.txt")
{
	m_file << "================================================================================\n";
	m_file << "xSuite Log\n";
	m_file << "================================================================================\n"<<std::endl;

	char timesign [128];	//tymczasowy bufor

	_strdate(timesign);	//zaladuj bierzaca date

	m_file <<"[Log file opened at: " << timesign;	//wypisz pierwsza polowe komunikatu, zawierajaca date

	_strtime(timesign);	//zaladuj bierzacy czas

	m_file <<" " << timesign <<"]\n";	//wypisz druga polowe komunikatu - aktualny czas
}

//=================================================================================================
// Logger::~Logger
//=========

Logger::~Logger()
{
	char timesign [128];	//tymczasowy bufor

	_strdate(timesign);	//zaladuj bierzaca date

	m_file <<"[Log file closed at: " << timesign;	//wypisz pierwsza polowe komunikatu, zawierajaca date

	_strtime(timesign);	//zaladuj bierzacy czas

	m_file <<" " << timesign <<"]\n";	//wypisz druga polowe komunikatu - aktualny czas
}

}